package com.cpimex.epricelite.enviarsap;
import com.cpimex.epricelite.action.conexion;
import com.cpimex.epricelite.enviarsap.EnviarSap;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.text.NumberFormat;
import javax.naming.InitialContext;

public class EnviarWebService {
	
	public EnviarWebService() {
		
	}
	
	public boolean BuscarPendientes(){
		try {
			boolean es_agro = false;
			InitialContext context = new InitialContext();	
			Connection conn_eprice = null;
			conn_eprice = conexion.conectar(context);
			Statement stmt = conn_eprice.createStatement();
			String DEFAULTDATE = "01/01/0001";
			String str_detalle =
	        " select ep_detalleSolicitud.precioSol_detSol+ep_detalleSolicitud.fleteLista_detSol as precioSol_detSol, "+
	        "        ep_detalleSolicitud.id_detSol, " +
	        "        ep_detalleSolicitud.fechaInicio_detSol, " +
	        "        ep_detalleSolicitud.fechaExp_detSol, " +
	        "        ep_detalleSolicitud.codigoCli_detSol, " +
	        "        ep_detalleSolicitud.codigoPro_detSol, " +
	        "        ep_detalleSolicitud.logistica_detSol,  " +
	        "        canal_distribucion, "+
	        "        ep_detalleSolicitud.unidad_venta, "+
	        "        ep_detalleSolicitud.division_detSol, "+
	        "        ep_detalleSolicitud.moneda_detsol  "+
	        " from   ep_detalleSolicitud inner join ep_vw_solicitud " +
	        " on ep_detalleSolicitud.id_detsol = ep_vw_solicitud.id_detsol "+
	        " where estaEnSAP_detSol = 0 AND id_estatus = 5";
	
		    ResultSet rs_detalle = stmt.executeQuery(str_detalle);
		    while( rs_detalle.next() ){
		        java.sql.Date dte_fechaInicio = rs_detalle.getDate("fechaInicio_detSol");
		        java.sql.Date dte_fechaExp = rs_detalle.getDate("fechaExp_detSol");
		        String str_cliente = rs_detalle.getString("codigoCli_detSol");
		        String str_producto = rs_detalle.getString("codigoPro_detSol");
		        double dbl_precio = rs_detalle.getDouble("precioSol_detSol");
		        int int_logistica = rs_detalle.getInt("logistica_detSol");
		        String str_canal_distribucion = rs_detalle.getString("canal_distribucion");
		        String str_moneda = rs_detalle.getString("moneda_detsol");
		        String str_unidad_venta = rs_detalle.getString("unidad_venta");
		        String str_division = rs_detalle.getString("division_detSol");
		        String idDetSol = rs_detalle.getString("id_detSol");
		        
		        if (str_division.equals("Agroproductos") || str_division.equals("AGROPRODUCTOS")) es_agro = true;
		        else es_agro = false;
		        
		      
		        SimpleDateFormat sdfSAP = new SimpleDateFormat("MMddyyyy");
		        //Calendar cal_fechaInicio = Calendar.getInstance();
		        String fechaexp ="";
		        if(dte_fechaExp!=null){
		        	fechaexp = sdfSAP.format(dte_fechaExp);
		        }else{
		        	fechaexp = DEFAULTDATE;
		        }
		        
		        EnviarSap sol=new EnviarSap();       
		        NumberFormat nf4 = NumberFormat.getInstance();
		    	nf4.setMaximumFractionDigits(4);
		    	nf4.setMinimumFractionDigits(4);
		    	
				sol.setStr_claseCondicion("YPR0");
				sol.setStr_organizacionVentas("3300");
				sol.setStr_canalDistribucion(str_canal_distribucion);
				sol.setStr_codigoCliente(str_cliente);
				sol.setStr_codigoProducto(str_producto);
				sol.setStr_logistica(String.valueOf(int_logistica));
				sol.setStr_fechaInicioExp(sdfSAP.format(dte_fechaInicio));
				sol.setStr_fechaFinExp(fechaexp);
				sol.setStr_precio(nf4.format(dbl_precio));
				sol.setStr_moneda(str_moneda);
				sol.setStr_porUnidadVenta("1");
				sol.setStr_unidadVenta(str_unidad_venta); 
				sol.setBool_esAgroproducto(es_agro);
				//sol.setStr_pathWebService("http://sdevelop01/SapInterface-WS/services/SapInterfaceBeanWS"); 
				sol.setStr_pathWebService("http://intranet/SapInterface-WS/services/SapInterfaceBeanWS");
				String str_querySAP="";
				//String resultado = sol.Enviar();
				if (sol.Enviar()){
					//out.println(sol.getStr_mensajeResultado());
					str_querySAP = 
	        			" UPDATE ep_detalleSolicitud " +
	        			" SET estaEnSAP_detSol = 1 "+
	        			" WHERE id_detSol = "+idDetSol;
				}
				else {
					//out.println(sol.getStr_mensajeResultado());
					str_querySAP = 
	        			" UPDATE ep_detalleSolicitud " +
	        			" SET estaEnSAP_detSol = 0 "+
	        			" WHERE id_detSol = "+idDetSol;
				}
				stmt.clearBatch();
				stmt.addBatch(str_querySAP);
				stmt.executeBatch();
				conn_eprice.commit();
		    }
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}
	
}
